package cc.rengu.igas.momp.common.constant;

import java.io.Serializable;

/**
 * 模块使用常量定义
 *
 * @author Jinan Liu
 * @version 1.0.0
 * @date 2020/3/28 16:36
 */
public class CommonConstant implements Serializable {

    /**
     * 零
     */
    public final static String ZERO_COMMON_CONSTANT = "0";
    public final static String ZERO_AMOUNT = "0.00";
    public final static String ZERO_AMOUNT_FEE = "0.000";
    /**
     * 一
     */
    public final static String ONE_COMMON_CONSTANT = "1";
    /**
     * 二
     */
    public final static String TWO_COMMON_CONSTANT = "2";
    /**
     * 三
     */
    public final static String THREE_COMMON_CONSTANT = "3";
    /**
     * 负一
     */
    public final static String MINUS_ONE_COMMON_CONSTANT = "-1";
    /**
     * 负二
     */
    public final static int MINUS_TWO = -2;
    public final static int MINUS_ONE = -1;
    /**
     * 数量不限
     */
    public final static String NO_LIMIT_COMMON_CONSTANT = "-1";
    /**
     * 千
     */
    public final static String THOUSAND = "1000";
    /**
     * 空字符串
     */
    public final static String EMPTY_STRING = "";
    /**
     * 处理成功返回码
     */
    public final static int PROCESS_SUCCESS = 0;
    /**
     * 处理失败返回码
     */
    public final static int PROCESS_FAILED = -1;
    /**
     * 零条记录
     */
    public final static int ZERO = 0;
    public final static int ONE = 1;
    /**
     * 近似无穷大
     */
    public final static String BIG_NUMBER = "999999999999999.99";
    /**
     * 月中
     */
    public final static int MIDDLE_OF_MONTH = 15;

    /**
     * 规则为9999
     */
    public final static String RULE_NINE = "9999";

    /**
     * 营销活动账户科目名称
     */
    public final static String MOMP_SUBJECT = "MOMP_SUBJECT";
    /**
     * 营销活动资金划转接口交易码
     */
    public final static String ESB_TRANSFER_TXN_NUM = "00010000175500";

    /**
     * 机构编码级别-总行
     */
    public final static String ORG_LEVEL_1 = "00";
    /**
     * 机构编码级别-分行
     */
    public final static String ORG_LEVEL_2 = "01";
    /**
     * 机构编码级别-支行
     */
    public final static String ORG_LEVEL_3 = "02";
    /**
     * 机构编码级别-营业部
     */
    public final static String ORG_LEVEL_4 = "03";
    /**
     * 机构编码级别-代理机构虚拟机构
     */
    public final static String ORG_LEVEL_5 = "04";

    /**
     * 默认机构号
     */
    public final static String DEFAULT_ORG_ID = "00000000000000";
    /**
     * 默认操作员编号
     */
    public final static String DEFAULT_OPR_ID = "00000000";
    /**
     * 默认总行清算机构编号尾号
     */
    public final static String DEFAULT_HEAD_OFFICE_SUFFIX = "777777";

    /**
     * 空格
     */
    public final static String WHITE_SPACE = " ";

    /**
     * 星花
     */
    public final static String ONE_STAR = "*";

    /**
     * Sequence长度-11位
     */
    public final static int ELEVEN = 11;
    public final static int EIGHT = 8;


    /**
     * 小数点精度-0位精度-笔数精度
     */
    public static final int DECIMAL_SCALE_ZERO = 0;
    /**
     * 小数点精度-2位精度-金额精度
     */
    public static final int DECIMAL_SCALE_TWO = 2;
    /**
     * 小数点精度-3位精度-手续费精度
     */
    public static final int DECIMAL_SCALE_THREE = 3;
    /**
     * 小数点精度-5位精度-费率和比率精度
     */
    public static final int DECIMAL_SCALE_FIVE = 5;

    /**
     * 操作标志-未设置
     */
    public final static int FLAG_NOT_SET = 0;
    /**
     * 操作标志-已设置
     */
    public final static int FLAG_SET = 1;

    /**
     * 操作符-小于
     */
    public static final int IS_LESS_THAN = -1;
    /**
     * 操作符-等于
     */
    public static final int IS_EQUAL_TO = 0;
    /**
     * 操作符-大于
     */
    public static final int IS_GREATER_THAN = 1;

    /**
     * 数据库时间戳
     */
    public final static String TIMESTAMP_FORMAT = "yyyy-MM-dd HH:mm:ss.SSS";


    /**
     * 商户范围-指定商户列表
     */
    public final static String SPECIFIC_MCHNT_LIST = "0";
    /**
     * 商户范围-商户上月日均存款达标
     */
    public final static String MCHNT_LAST_MONTH_AVG_DEPOSIT = "1";
    /**
     * 商户范围-商户上月日均交易额达标
     */
    public final static String MCHNT_LAST_MONTH_AVG_TXN_AMOUNT = "2";

    /**
     * 客户范围-所有人
     */
    public final static String ALL_CLIENT_SUPPORT = "0";
    /**
     * 客户范围-指定用户
     */
    public final static String SPECIFIC_CLIENT_SUPPORT = "1";

    /**
     * 活动时间标志-有效期内，任意时段可用
     */
    public final static String ALL_TIME_SUPPORT = "0";
    /**
     * 活动时间标志-有效期内，部分时段可用
     */
    public final static String SPECIFIC_TIME_SUPPORT = "1";

    /**
     * 活动时间周日期标志-未设置
     */
    public final static String WEEK_FLAG_NOT_SET = "0";
    public final static String WEEK_FLAG_ALL_NOT_SET = "0000000";
    /**
     * 活动时间周日期标志-有已设置
     */
    public final static String WEEK_FLAG_SET = "1";
    public final static String WEEK_FLAG_ALL_SET = "1111111";

    /**
     * 卡券购买标志-未设置
     */
    public final static String COUPON_FREE = "0";
    /**
     * 卡券购买标志-已设置
     */
    public final static String COUPON_NEED_TO_PURCHASE = "1";

    /**
     * 卡券领取方式-手机号
     */
    public final static String COUPON_CLAIM_WITH_MOBILE = "0";
    /**
     * 卡券领取方式-微信OpenID
     */
    public final static String COUPON_CLAIM_WITH_WECHAT = "1";
    /**
     * 卡券领取方式-支付宝UserID
     */
    public final static String COUPON_CLAIM_WITH_ALIPAY = "2";
    /**
     * 卡券领取方式-本行银行卡号
     */
    public final static String COUPON_CLAIM_WITH_CARD = "3";
    /**
     * 卡券领取方式-用户ID领取
     */
    public final static String COUPON_CLAIM_WITH_MEMBER = "4";

    /**
     * 出资方-银行全资
     */
    public final static String SPONSOR_BANK = "0";
    /**
     * 出资方-银行商户联合
     */
    public final static String SPONSOR_MIXED = "1";
    /**
     * 出资方-商户全资"
     */
    public final static String SPONSOR_MCHNT = "2";
    /**
     * 出资方-商户全资免充值（内管平台创建活动）"
     */
    public final static String SPONSOR_MCHNT_NORECHARGE = "3";

    /**
     * 收银员返现状态-未返现
     */
    public final static String CASHIER_CASHBACK_STATUS_INITIAL = "0";
    /**
     * 收银员返现状态-返现成功
     */
    public final static String CASHIER_CASHBACK_STATUS_SUCCESS = "1";
    /**
     * 收银员返现状态-返现失败
     */
    public final static String CASHIER_CASHBACK_STATUS_FAILED = "2";
    /**
     * 收银员返现状态-返现中
     */
    public final static String CASHIER_CASHBACK_STATUS_ = "3";

    /**
     * 新增商户标志-存量商户
     */
    public final static String MCHNT_OLD_FLAG = "0";
    /**
     * 新增商户标志-新增商户
     */
    public final static String MCHNT_NEW_FLAG = "1";
    /**
     * 新增商户标志-进行中拒绝新增商户
     */
    public final static String MCHNT_REFUSE_FLAG = "2";

    /**
     * 营销活动退出标志-未退出优惠
     */
    public final static String MC_NOT_EXIT_FLAG = "0";
    /**
     * 营销活动退出标志-退出优惠
     */
    public final static String MC_EXIT_FLAG = "1";
    /**
     * 营销活动退出标志-转移商户
     */
    public final static String MC_TRANSFER_FLAG = "2";

    /**
     * 存量商户达标标志-未达标
     */
    public final static String CRITERIA_FLAG_NOT_SET = "0";
    /**
     * 存量商户达标标志-已达标
     */
    public final static String CRITERIA_FLAG_SET = "1";

    /**
     * 业务数据临时表操作-新增insert
     */
    public final static String BIZ_OPR_INSERT = "I";
    /**
     * 业务数据临时表操作-修改update
     */
    public final static String BIZ_OPR_UPDATE = "U";
    /**
     * 业务数据临时表操作-停用suspend
     */
    public final static String BIZ_OPR_SUSPEND = "S";
    /**
     * 业务数据临时表操作-启用enable
     */
    public final static String BIZ_OPR_ENABLE = "E";
    /**
     * 业务数据临时表操作-注销cancel
     */
    public final static String BIZ_OPR_CALCEL = "C";
    /**
     * 业务数据临时表操作-审批audit
     */
    public final static String BIZ_OPR_AUDIT = "A";
    /**
     * 业务数据临时表操作-退回return
     */
    public final static String BIZ_OPR_RETURN = "R";
    /**
     * 业务数据临时表操作-发布publish
     */
    public final static String BIZ_OPR_PUBLISH = "P";
    /**
     * 业务数据临时表操作-删除
     */
    public final static String BIZ_OPR_DELET = "D";


    /**
     * 日期-周-星期一
     */
    public final static int WEEK_MONDAY = 1;
    /**
     * 日期-周-星期二
     */
    public final static int WEEK_TUESDAY = 2;
    /**
     * 日期-周-星期三
     */
    public final static int WEEK_WEDNESDAY = 3;
    /**
     * 日期-周-星期四
     */
    public final static int WEEK_THURSDAY = 4;
    /**
     * 日期-周-星期五
     */
    public final static int WEEK_FRIDAY = 5;
    /**
     * 日期-周-星期六
     */
    public final static int WEEK_SATURDAY = 6;
    /**
     * 日期-周-星期日
     */
    public final static int WEEK_SUNDAY = 7;


    /**
     * 核对状态-未核对
     */
    public final static String VERIFY_STATUS_INIT = "0";
    /**
     * 核对状态-成功核对
     */
    public final static String VERIFY_STATUS_SUCCESS = "1";
    /**
     * 核对状态-失败核对
     */
    public final static String VERIFY_STATUS_FAILED = "2";
    /**
     * 核对状态-核对中
     */
    public final static String VERIFY_STATUS_ONGOING = "3";

    /**
     * 商户范围类型-商户号
     */
    public final static String MCHNT_RANGE_TYPE_MCHNT = "0";
    /**
     * 商户范围类型-商圈号
     */
    public final static String MCHNT_RANGE_TYPE_AREA = "1";

    /**
     * 商户参与商户手续费优惠营销活动方式 - 存量商户配置
     */
    public final static String MFD_STOCK_MCHNT_CFG = "0";
    /**
     * 商户参与商户手续费优惠营销活动方式 - 活动期间已登记新增商户
     */
    public final static String MFD_NEW_MCHNT_CFG = "1";
    /**
     * 商户参与商户手续费优惠营销活动方式 - 活动期间未登记新增商户
     */
    public final static String MFD_NEW_MCHNT = "2";

    /**
     * 存量商户支持类型-商户上月日均存款
     */
    public final static String OLD_MCHNT_DEPOSIT = "0";
    /**
     * 存量商户支持类型-交易笔数
     */
    public final static String OLD_MCHNT_TXN_QTY = "1";
    /**
     * 存量商户支持类型-交易金额
     */
    public final static String OLD_MCHNT_TXN_AMT = "2";
    /**
     * 存量商户支持类型-手续费金额
     */
    public final static String OLD_MCHNT_FEE_AMT = "3";

    /**
     * 手续费收取方式-使用现有费率
     */
    public final static String FEE_MODE_LADDER = "0";
    /**
     * 手续费收取方式-手工输入按比率
     */
    public final static String FEE_MODE_RATE = "1";
    /**
     * 手续费收取方式-手工输入按固定金额
     */
    public final static String FEE_MODE_FIXED_AMT = "2";
    /**
     * 手续费收取方式-手工输入按比率+封顶值
     */
    public final static String FEE_MODE_RATE_AMT = "3";

    /**
     * 商户手续费优惠类型-免手续费
     */
    public final static String MCHNT_FEE_FREE = "0";
    /**
     * 商户手续费优惠类型-费率打折
     */
    public final static String MCHNT_FEE_DISCOUNT = "1";
    /**
     * 商户手续费优惠类型-固定费率
     */
    public final static String MCHNT_FEE_FIXED_RATE = "2";

    /**
     * 商户手续费优惠周期-与活动周期一致
     */
    public final static String MFD_PERIOD_MC = "0";
    /**
     * 商户手续费优惠周期-自然日
     */
    public final static String MFD_PERIOD_DAY = "1";
    /**
     * 商户手续费优惠周期-自然月度
     */
    public final static String MFD_PERIOD_MONTH = "2";
    /**
     * 商户手续费优惠周期-自然季度
     */
    public final static String MFD_PERIOD_QUARTER = "3";
    /**
     * 商户手续费优惠周期-自然年度
     */
    public final static String MFD_PERIOD_ANNUAL = "4";


    /**
     * 商户手续费优惠退出标志-活动结束后自然退出
     */
    public final static String MCHNT_FEE_EXIT_NORMAL = "0";
    /**
     * 商户手续费优惠退出标志-按条件退出
     */
    public final static String MCHNT_FEE_EXIT_UNDER_CONDITION = "1";


    /**
     * 操作菜单
     */
    public final static String DEFAULT_MENU_ID = "MENU_ID";
    /**
     * 操作菜单名
     */
    public final static String DEFAULT_MENU_NAME = "MENU_NAME";

    /**
     * 查询主体参加活动标志-不区分
     */
    public final static String ATTEND_FLAG_DEFAULT = "0";
    /**
     * 查询主体参加活动标志-未参加
     */
    public final static String ATTEND_FLAG_NO = "1";
    /**
     * 查询主体参加活动标志-已参加
     */
    public final static String ATTEND_FLAG_YES = "2";
    /**
     * 查询主体参加活动标志-商户独资
     */
    public final static String ATTEND_FLAG_SOLE = "3";

    /**
     * 账户标志-测试账户
     */
    public final static String ACCT_FLAG_TESTING = "0";
    /**
     * 账户标志-正式账户
     */
    public final static String ACCT_FLAG_NORMAL = "1";

    /**
     * 卡券锁定标志-锁定卡券
     */
    public final static String CLAIM_COUPON_LOCK = "0";
    /**
     * 卡券锁定标志-解锁卡券，并领取卡券
     */
    public final static String CLAIM_COUPON_UNLOCK_S = "1";
    /**
     * 卡券锁定标志-解锁卡券，并解除领取状态
     */
    public final static String CLAIM_COUPON_UNLOCK_F = "2";

    /**
     * 卡券生效时间-实时生效
     */
    public final static String COUPON_IMMEDIATE_AVAILABLE = "0";
    /**
     * 卡券生效时间-第二天生效
     */
    public final static String COUPON_NEXT_DAY_AVAILABLE = "1";

    /**
     * 卡券有效期标志-0-绝对日期范围
     */
    public final static String COUPON_FIXED_DATE = "0";
    /**
     * 卡券有效期标志-1-领券后相对周期
     */
    public final static String COUPON_RELATIVE_DATE = "1";

    /**
     * 活动发布批量任务状态-未处理
     */
    public final static String PUBLISH_BATCH_INITIAL = "0";
    /**
     * 活动发布批量任务状态-处理成功
     */
    public final static String PUBLISH_BATCH_SUCCESS = "1";
    /**
     * 活动发布批量任务状态-处理失败
     */
    public final static String PUBLISH_BATCH_FAILED = "2";
    /**
     * 活动发布批量任务状态-处理中"
     */
    public final static String PUBLISH_BATCH_PROCESSING = "3";

    /**
     * 当前该卡券是否可使用-可用
     */
    public final static String COUPON_AVAILABLE_YES = "0";
    /**
     * 当前该卡券是否可使用-不可用
     */
    public final static String COUPON_AVAILABLE_NO = "1";

    /**
     * 商户手续费优惠退出条件统计周期-未选择
     */
    public final static String FEE_EXIT_NA = "0";
    /**
     * 商户手续费优惠退出条件统计周期-与活动起止一致
     */
    public final static String FEE_EXIT_MC = "1";
    /**
     * 商户手续费优惠退出条件统计周期-自然月度
     */
    public final static String FEE_EXIT_MONTH = "2";
    /**
     * 商户手续费优惠退出条件统计周期-自然季度
     */
    public final static String FEE_EXIT_QUARTER = "3";
    /**
     * 商户手续费优惠退出条件统计周期-自然年度
     */
    public final static String FEE_EXIT_ANNUAL = "4";

    /**
     * 达标后手续费优惠规则-达标后的交易通过手续费实时优惠营销
     */
    public final static String FEE_REAL_TIME_DISCOUNT_FLAG = "0";
    /**
     * 达标后手续费优惠规则-达标后的交易通过返现营销
     */
    public final static String FEE_POSTPONE_DISCOUNT_FLAG = "1";

    /**
     * 新增商户周期顺延标志-不自动顺延
     */
    public final static String NEW_MCHNT_DISCOUNT_END = "0";
    /**
     * 新增商户周期顺延标志-自动顺延
     */
    public final static String NEW_MCHNT_DISCOUNT_PROLONG = "1";

    /**
     * 退货类型-全额退货
     */
    public final static String REFUND_TYPE_ALL = "0";
    /**
     * 退货类型-部分退货
     */
    public final static String REFUND_TYPE_PARTIALLY = "1";

    /**
     * 调账状态-调账成功
     */
    public final static String REGULATION_STATUS_SUCC = "0";
    /**
     * 调账状态-调账失败
     */
    public final static String REGULATION_STATUS_FAIL = "1";

    /**
     * 调账交易类型-支付类
     */
    public final static String TXN_FLAG_PAYMENT = "PAYMENT";
    /**
     * 调账交易类型-退货类
     */
    public final static String TXN_FLAG_REFUND = "REFUND";

    /**
     * 退货类型-非退货类交易
     */
    public final static int REFUND_NON = -1;
    /**
     * 退货类型-全额退货
     */
    public final static int REFUND_FULLY = 0;
    /**
     * 退货类型-部分退货-第1笔
     */
    public final static int REFUND_PARTIALLY_FIRST = 1;
    /**
     * 退货类型-部分退货-最后一笔
     */
    public final static int REFUND_PARTIALLY_LAST = 2;
    /**
     * 退货类型-非第一笔也非最后一笔
     */
    public final static int REFUND_PARTIALLY = 3;


    /**
     * 手续费计算规则-无上限
     */
    public final static String RULETYPE_NO_LIMIT = "0000";
    /**
     * 手续费计算规则-指定具体数值
     */
    public final static String RULETYPE_FIXED_VALUE = "0001";
    /**
     * 手续费计算规则-上月日均存款万位取整+3万
     */
    public final static String RULETYPE_ADD_THREE = "0002";
    /**
     * 手续费计算规则-上月日均存款*2+3万
     */
    public final static String RULETYPE_MULTIPLY_TWO = "0003";

    /**
     * 用户类型_手机号
     */
    public final static String MEMBERTYPE_IPHONE = "0";
    /**
     * 用户类型_微信OpenID
     */
    public final static String MEMBERTYPE_WX_OPENID = "1";
    /**
     * 用户类型_支付宝UserID
     */
    public final static String MEMBERTYPE_ALI_USERID = "2";
    /**
     * 用户类型_本行银行卡号
     */
    public final static String MEMBERTYPE_CARDNO = "3";

    /**
     * 机构编码级别_总行
     */
    public final static String ORGLEVEL_BANK = "00";
    /**
     * 机构编码级别_分行
     */
    public final static String ORGLEVEL_BANK_BRANCH = "01";
    /**
     * 机构编码级别_支行
     */
    public final static String ORGLEVEL_BANK_SUBBRANCH = "02";

    /**
     * 失败时的返回响应描述
     */
    public final static String KEY_RESPDESC = "respDesc";

    /**
     * 营销科目/账号标识
     */
    public final static String MOMP_DEBIT_SUBJECT = "MOMP_DEBIT_SUBJECT";
    /**
     * 营销支出户科目/账号标识
     */
    public final static String MOMP_EXPENSE_SUBJECT = "MOMP_EXPENSE_SUBJECT";
    /**
     * 总行清算中心机构号后6位
     */
    public final static String HEAD_OFFICE_SIX = "777777";
    /**
     * 不支持存量商户
     */
    public final static String STOCK_MCHNT_FLAG_ZERO = "0";
    /**
     * 支持直接选定的存量商户
     */
    public final static String STOCK_MCHNT_FLAG_ONE = "1";
    /**
     * 支持选定机构内所有有效商户
     */
    public final static String STOCK_MCHNT_FLAG_TWO = "2";
    /**
     * 不区分具体行时使用的instId
     */
    public final static String ALL_INSTID = "800";
    /**
     * 手续费定时任务名称
     */
    public final static String MFD_TIME_TASK_NAME = "MompStatFeeCriteriaInit";
    /**
     * 减免类定时任务名称
     */
    public final static String MO_TIME_TASK_NAME = "MchntInitMoneyOff";
    /**
     * 卡券类定时任务名称
     */
    public final static String CP_TIME_TASK_NAME = "MchntInitCoupon";
    /**
     * 对客 卡券类定时任务名称
     */
    public final static String MO_CP_TIME_TASK_NAME = "ToCustomMarketingInits";
    /**
     * 收银员类定时任务名称
     */
    public final static String CCB_TIME_TASK_NAME = "CashierMchntInits";
    /**
     * 卡券生成定时任务
     */
    public final static String CP_CREATE_TIME_TASK_NAME = "CouponInit";
    /**
     * 指定卡券领取渠道 默认-00
     */
    public final static String CLAIM_CHANNEL_DEFAULT = "00";
    /**
     * 指定卡券领取渠道 App6.0-79
     */
    public final static String CLAIM_CHANNEL_APP = "79";
    /**
     * 是 yes
     */
    public final static String YES = "Y";
    /**
     * 否 no
     */
    public final static String NO = "N";
    /**
     * 数据迁移流水源系统标识
     */
    public final static String SHUJUQIANYI = "SJQY";
    /**
     * 法人行机构编码查询类型
     */
    public final static String OPMS_SYS_PARAM = "OPMS_SYS_PARAM";
    /**
     * 法人行机构编码查询键值
     */
    public final static String CORPORATION_ORG_CODE = "CORPORATION_ORG_CODE";
    /**
     * 活动支持的商户类型- 支持所有商户类型
     */
    public final static String SUPPORT_ALLTYPES_MCHNT = "1|1|1|1|1|1";
    /**
     * 竖线
     */
    public final static String VERTICAL_LINE = "\\|";
    /**
     * 815机构号
     */
    public final static String INST_ID_815 = "815";
    /**
     * 整数6
     */
    public final static int SIX = 6;
    /**
     * 订单流水表-有至少一种优惠 参与对账
     */
    public final static String DISCOUNT_FLAG_TRUE_CHECK_FLAG_TRUE = "{\"discountFlag\":\"true\",\"checkFlag\":\"true\"}";
    /**
     * 订单流水表-有至少一种优惠 不参与对账
     */
    public final static String DISCOUNT_FLAG_TRUE_CHECK_FLAG_FALSE = "{\"discountFlag\":\"true\",\"checkFlag\":\"false\"}";
    /**
     * 订单流水表-无任何一种优惠 不参与对账
     */
    public final static String DISCOUNT_FLAG_FALSE_CHECK_FLAG_FALSE = "{\"discountFlag\":\"false\",\"checkFlag\":\"false\"}";

    /**
     * 营销活动级别  非商户非银行级
     */
    public final static String MC_LVL_CD_NOT = "0";
    /**
     * 营销活动级别  商户级
     */
    public final static String MC_LVL_CD_MCHNT = "1";
    /**
     * 营销活动级别  银行级
     */
    public final static String MC_LVL_CD_BANK = "2";


    /**
     * 停车场业务  是
     */
    public final static String PRK_BUSN_FLG_YES = "1";
    /**
     * 停车场业务  否
     */
    public final static String PRK_BUSN_FLG_NO = "0";


}
